Function jo kisi kaam ke complete hone ke baad chalti hai. Ye async programming ka basic concept hai.
function fetchData(callback) {
setTimeout(() => {
callback("Data received");
}, 2000);
}
fetchData((result) => {
console.log(result);
});Jab multiple callbacks nested hoti hain, to code mushkil ho jata hai samajhna. Isko 'callback hell' kehte hain.
setTimeout(() => {
console.log("1st step");
setTimeout(() => {
console.log("2nd step");
setTimeout(() => {
console.log("3rd step");
}, 1000);
}, 1000);
}, 1000);Promises better way hain async code likhne ke liye. Ye 3 states mein hoti hain: pending, resolved, rejected.
const fetchData = new Promise((resolve, reject) => {
let success = true;
if(success){
resolve("Data loaded");
} else {
reject("Error occurred");
}
});
fetchData.then(res => console.log(res)).catch(err => console.error(err));`Promise.all`, `Promise.race`, `Promise.allSettled` etc. multiple promises handle karne ke liye use hoti hain.
const p1 = Promise.resolve(1);
const p2 = Promise.resolve(2);
Promise.all([p1, p2]).then(values => {
console.log(values); // [1, 2]
});Ek promise complete hone ke baad dusra promise chain karke call karna.
fetchData()
.then(res => {
console.log("Step 1 done");
return doNext();
})
.then(() => {
console.log("Step 2 done");
})
.catch(err => console.error(err));